2e76fb
@@ -35,6 +35,7 @@
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.serde.serdeConstants;
 import org.apache.hadoop.hive.serde2.SerDe;
+import org.apache.hadoop.hive.serde2.SerDeUtils;
 import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -199,7 +200,7 @@
private static Object convertLazyToJava(Object o, ObjectInspector oi) {
     Object obj = ObjectInspectorUtils.copyToStandardObject(o, oi, ObjectInspectorCopyOption.JAVA);
 
     if (obj == null) {
-      return obj;
+      return null;
     }
     if(oi.getTypeName().equals(serdeConstants.BINARY_TYPE_NAME)) {
       return new String((byte[])obj);
@@ -207,9 +208,8 @@
private static Object convertLazyToJava(Object o, ObjectInspector oi) {
     // for now, expose non-primitive as a string
     // TODO: expose non-primitive as a structured object while maintaining JDBC compliance
     if (oi.getCategory() != ObjectInspector.Category.PRIMITIVE) {
-      return obj.toString();
+      return SerDeUtils.getJSONString(o, oi); 
     }
-
     return obj;
   }
 
